package com.zhunaer.service;

import com.zhunaer.dao.OrderDao;
import com.zhunaer.entity.Order;
import com.zhunaer.entity.User;
import com.zhunaer.entity.Room;

/**
 * 订单服务接口，定义了与订单操作相关的方法。
 * 该接口为订单的创建和取消操作提供了统一的方法签名，
 * 具体的实现由实现该接口的类来完成。
 */
public interface OrderService {
    /**
     * 创建订单的方法。
     * 根据传入的用户信息、房间信息和预订房间数量来创建一个新订单。
     *
     * @param user 下订单的用户对象，包含用户的相关信息。
     * @param room 用户预订的房间对象，包含房间的相关信息。
     * @param quantity 用户预订的房间数量，必须为正整数。
     * @return 若订单创建成功，返回订单的唯一标识（通常为订单ID）；若创建失败，返回一个负数或特定错误码。
     */
    int createOrder(User user, Room room, int quantity);

    /**
     * 取消订单的方法。
     * 根据传入的订单ID取消对应的订单。
     *
     * @param orderId 要取消的订单的唯一标识。
     * @return 若订单取消成功，返回1；若订单不存在或取消失败，返回0或其他特定错误码。
     */
    int cancelOrder(int orderId);
}